Herzlich willkommen bei »Perl in 21 Tagen«! Ich als Ihre »Reiseleiterin« auf dieser dreiwöchigen Bildungsreise in die Welt von Perl möchte Ihnen alles Nötige zeigen und vorstellen - damit Sie am Ende mit Perl anstellen können, was Ihnen gerade in den Sinn kommt, und Sie sich intelligent an der Unterhaltung anderer Perl-Programmierer beteiligen können.
Heute beginnen wir mit ein paar Grundlagen, die Ihnen den Start in die Arbeit mit Perl erleichtern sollen. Die Lektion von heute ist kurz; zuerst ein wenig Hintergrundwissen, und dann legen wir los und lassen Perl mit ein paar einfachen Skripts laufen. Insbesondere sind unsere Themen heute:
Machen wir kein großes Aufheben und fangen wir einfach an. Woche eins, Tag eins, Abschnitt eins - und los!
Perl hat nichts mit Perlen zu tun. Perl ist eigentlich eine Abkürzung. Es steht für Practical Extraction and Report Language. Das könnte man mit »Praktische Extraktions- und Report-Sprache« übersetzen, wenn es nicht so schrecklich klänge. Denn es ist eine ziemlich treffende Beschreibung von Perls besonderen Stärken: Extraktion für das Anschauen von Dateien und das Herausziehen wichtiger Teile (zum Beispiel aktueller Daten aus einer HTML-Datei oder Benutzer- oder Host- Namen aus einer Netzwerk-Log-Datei); Report für das Generieren von Ausgaben und Reports über die gefundenen Informationen. Die Sprache ist praktisch, weil es viel leichter ist, diese Art von Programmen in Perl zu schreiben als in einer Sprache wie C. Aber, ob englisch oder deutsch, niemand klammert sich heute mehr an die Abkürzung. Perl ist einfach Perl.
Perl wurde 1987 von Larry Wall entwickelt, einem Amerikaner, der schon damals in der Unix-Software-Welt ziemlich bekannt dafür war, dass er sowohl das frei erhältliche Programm patch als auch den Usenet Newsreader rn geschrieben hatte. Es geht die Geschichte um, dass Larry gerade an einer Aufgabe arbeitete, für die das Unix- Programm awk (das zu dieser Zeit populäre Extraktions- und Report-Programm) nicht ausreichte, ihm aber klar wurde, dass die Lösung seiner Aufgabe in einer Sprache wie C eine Menge Arbeit bedeuten würde. So erfand er eine eigene Skriptsprache - Perl. Er borgte sich dabei einiges aus diversen anderen Unixtools und -sprachen wie sed, grep, awk, Shell-Skripts und, ja, C.
Außerdem wurde Perl, wie patch und rn, frei an die Unix-Gemeinschaft gegeben. Die Unix-Gemeinschaft griff Perl dankbar auf. Jahrelang war Perl die bevorzugte Sprache für Unix-Systemadministratoren und andere Unix-Programmierer. Sie brauchten eine flexible, schnell zu programmierende Sprache zur Lösung von Aufgaben, die für Shell- Skripting zu komplex waren und deren Lösung in Sprachen wie C einen deutlichen Mehraufwand bedeutet hätte. Es lag an seiner Popularität als Unix-Sprache, dass Perl sich auch als Web-Sprache zum Erstellen von CGI-Skripts durchsetzte - so gut wie alle Webserver liefen früher auf Unixsystemen. Mit CGI (Common Gateway Interface) konnte - und kann - man mit Formularen oder anderen »webseitigen« Eingaben interaktiv Programme und Skripts auf dem Webserver ablaufen lassen. Perl paßte wunderbar in diese Nische, und als in den letzten Jahren das World Wide Web und CGI immer populärer wurden, wuchs auch das Interesse an Perl enorm. Selbst als Webserver dann auch auf anderen Systemen liefen, zog Perl mit ihnen zusammen um und blieb für diese Anwendung weiterhin populär.
Perl ist eigentlich das »Kind« von Larry Wall, der sich zunächst allein um Weiterentwicklung und Updates kümmerte. Mit dem plötzlichen Anstieg von Perls Beliebtheit kümmert sich jetzt eine engverzahnte Gruppe von freiwilligen Programmierern um diese Aufgaben. Diese Programmierer, darunter auch Larry Wall selbst, arbeiten weiter am Quellcode von Perl, portieren ihn auf Nicht-Unix- Plattformen, koordinieren Bugfixes und geben die »Standard« Perl Releases heraus (in der Datei Changes der Standard-Perl-Distribution finden Sie eine Namensliste dieser »Perl-Hauptdarsteller«). Perl gehört keiner einzelnen Organisation. Wie die GNU- Tools (GNU-Emacs, GCC, GDB etc.) und das Betriebssystem Linux wird Perl auf einer freiwilligen Goodwill-Basis entwickelt und gemanagt. Es ist ebenfalls kostenlos. Alles, was Sie tun müssen, ist, es zu laden und zu installieren.
Die aktuelle Perl-Version ist Perl 5. Das ist auch die Version, die in diesem Buch behandelt wird. In allen Versionsnummern folgen auf die 5 ein Punkt und viele Zahlen. Das sind die Nummern der Patches, kleineren »Neuauflagen«, die meistens in der Originalfassung gefundene Bugs beheben (obwohl sich manchmal auch einige neue Features einschleichen). Für die Unix- und Windows-Plattform war, während ich dieses Buch schrieb, Perl 5.005 aktuell, für den Macintosh lag »nur« Version 5.004 vor. Diese kleineren Nummern der Releases haben sich, wenn Sie all das hier lesen, mittlerweile möglicherweise geändert, an allen Perl-Portierungen wird weiter gearbeitet (außerdem können jederzeit separate weniger stabile Betaversionen und auch eine neue »offizielle Version« erscheinen). Sie müssen aber nicht jedes kleine Update mitmachen; wirklich wichtig ist vor allem, dass Sie Perl 5 installiert haben. Seit Perl 5.005 unterstützt der Kern auch Windows (anders als bei den verschiedenen oft inkompatiblen Portierungen, die es vorher gab). Wenn Sie mit Windows und eines älteren Perl-Release arbeiten, empfehle ich Ihnen dringend ein Update auf die neuere Version. Der neue Kern behebt viele Bugs, gleicht Unterschiede aus und erleichtert die Arbeit ungemein.
Die Beispiele in diesem Buch wurden mit der Unix-Version 5.005_02 geschrieben und mit ActiveState's Perl for Windows build 508 und MacPerl 5.2.0r4 (einer 5.004-Portierung) getestet. In den Anhängen C, D und E erfahren Sie, wie man diese Perl-Versionen bekommt und installiert.
Die Zahl der heute auf dem Markt erhältlichen Programmiersprachen ist enorm. Und wie es aussieht, behauptet jede von ihnen, sie könne all Ihre Probleme in der halben Zeit und zu einem Viertel der Kosten lösen und dabei noch Kaffee kochen .... Warum also Perl lernen und nicht eher eine dieser anderen Sprachen?
Das beste Argument lautet: Unterschiedliche Werkzeuge eignen sich unterschiedlich gut für unterschiedliche Aufgaben. Perl bietet Ihnen für eine Menge allgemeiner Aufgaben viele besonders gute Werkzeuge. Doch es gibt darüber hinaus noch ein paar mehr gute Gründe, Perl zu lernen und zu nutzen.
Perl ist wahrscheinlich die richtige Sprache für Sie, wenn eine der folgenden Aussagen auf Sie zutrifft:
Sie können mit Perl richtig sinnvolle Arbeit erledigen, und das ziemlich schnell.
Wenn Sie mit Perl arbeiten möchten, brauchen Sie kein hochglanzverpacktes Programm zu kaufen. Sie brauchen keinen Perl-Compiler oder integrierte Entwicklungsumgebung. Sie brauchen keinen Browser, der Perl unterstützt, und keinen Computer, der »Perl inside« sagt. Sie brauchen nur eines: den Standard-Perl- Interpreter. Und den bekommen Sie umsonst, ganz einfach, indem Sie sich ihn herunterladen. Wenn Sie einen Unix-Shell-Account bei einem Internet Service Provider haben, haben Sie ihn vielleicht schon.
Okay, eine andere Sache brauchen Sie noch: einen Texteditor, mit dem Sie Ihre Perl- Skripts schreiben. Irgendeiner ist aber bei jedem System, auf dem Perl läuft, schon dabei, also sind Sie nach wie vor auf der sicheren Seite.
Perl ist eine Skriptsprache. Das bedeutet, dass Ihre Perl-Skripts reine Textdateien sind, die sofort ausgeführt werden, wenn Perl sie ablaufen läßt. Sie brauchen keinen Compiler, der Ihren Code wie bei einer Sprache wie C oder Java in ein anderes Format, etwa eine ausführbare oder Bytecode-Datei, verwandelt. Deswegen können Sie mit Perl schneller und einfacher als in C Ihre ersten Programme laufen lassen, debuggen und verändern.
Skriptsprachen werden in der Computersprache oft interpretierte Sprachen genannt. Obwohl Perl eine interpretierte Sprache zu sein scheint, weil seine Programme Skripts sind und der Perl-Interpreter diese Skripts ausführt, ist Perl in Wahrheit beides, eine kompilierte und eine interpretierte Sprache.
Wenn Sie ein Perl-Skript starten, liest Perl das ganze Skript ein, kompiliert es und führt dann das Ergebnis aus. Obwohl Perl dadurch sehr interpretiert aussieht und Sie Perl-Skripte ändern und neu ausführen können wie bei einer interpretierten Sprache, haben Sie in einem gewissen Maße auch Kontrolle über den Kompilierungsprozeß. Perl läuft auch schneller als eine interpretierte Sprache (obwohl es nicht ganz so schnell ist wie eine kompilierte).
Da Perl eine Skriptsprache ist, gilt: Ein Perl-Skript ist ein Perl-Skript, ist ein Perl- Skript, ganz egal auf welcher Plattform Sie es laufen lassen. Zwar gibt es Unterschiede in Perl auf verschiedenen Plattformen und auch ein paar Features, die nur auf bestimmten Plattformen funktionieren (ich werde jeweils darauf hinweisen), doch in den meisten Fällen kann man ein Skript von einer Plattform zur anderen verschieben, ohne es irgendwie zu ändern - ohne es aufwendig auf ein neues Betriebssystem zu portieren, ohne noch einmal den Quelltext kompilieren zu müssen.
In Perl sind viele ziemlich komplexe Unix-Tools eingeflossen. Und es hat alle Features, die Sie in einer High-Level-Sprache erwarten (und viele, die Sie nicht erwarten). Fast alles, was Sie in einer anspruchsvollen Sprache wie C machen können, geht auch in Perl, obwohl es natürlich Aufgaben gibt, für die C besser als Perl geeignet ist und umgekehrt. Sie können in Perl strukturiert programmieren. Sie können in Perl fortgeschrittene Datenstrukturen bauen. Sie können in Perl objektorientiert programmieren.
Wenn Ihnen Perl allein nicht gut genug ist, gibt es außerdem umfassende Archive mit vielerlei Tools und Bibliotheken (Module genannt) für diverse häufige Aufgaben. Module für Datenbanken, Interaktivität, Netzwerke, Verschlüsselung, Verbindungen zu anderen Sprachen - so ziemlich alles Erdenkliche ist in diesen Archiven erhältlich. Wenn Sie denken: »Dies und jenes habe ich jetzt mit Perl vor«, hatte in vielen Fällen schon jemand dieselbe Idee und hat seinen Code über die Archive zur freien Verfügung gestellt. Perls kooperative Natur hat zur Folge, dass es eine enorme Menge von Ressourcen gibt, die Sie für sich nutzen können.
Eins der Mottos von Perl ist: There's more than one way to do it (»Es gibt mehr als einen Weg, Dinge zu tun.«). Viele Wege führen zum Ziel. Darauf verweisen Perl-Leute oft mit der Abkürzung TMTOWTDI. Merken Sie sich diesen Satz, denn ich werde im ganzen Buch immer wieder darauf zurückkommen. Die Philosophie beim Entwurf von Perl war, dass unterschiedliche Programmierer auch unterschiedliche Methoden haben, sich Problemen zu nähern und sie zu lösen. Deshalb stellt Ihnen Perl, anstatt von Ihnen zu verlangen, Ihre Denkweise an einen kleinen Satz von Befehlen und syntaktischen Strukturen anzupassen, eine enorme Anzahl von Konstruktionen und Abkürzungen zur Verfügung - von denen viele letztlich genau das gleiche machen wie andere, nur auf eine etwas andere Art und Weise.
Das macht Perl zu einer sehr umfangreichen, komplexen und komplizierten Sprache (als ich das erste Mal auf Perl traf, als junge, idealistische Programmiererin, war meine erste Reaktion: »Es ist so häßlich!«). Aber der Umfang von Perl und die Vielzahl seiner Möglichkeiten machen es auch extrem flexibel und angenehm im Gebrauch. Kompliziert kann es eigentlich nur werden, wenn Sie Perl-Skripts von anderen lesen müssen. Selbst eins zu schreiben, ist dagegen ziemlich einfach, denn es liegt ganz bei Ihnen, ob Sie ein ganz geradliniges, C-artiges Skript schreiben - nur einige der vielen Perl-Abkürzungen verwenden und dabei komplett lesbar bleiben - oder ob Sie sich so schwer auf Perl-Seiteneffekte und versteckte Features stützen, dass Sie alle, die versuchen, Ihr Skript zu lesen, damit in den Wahnsinn oder zur Verzweiflung treiben (manchmal ist es recht lustig, auf diese Art einen ruhigen Nachmittag zu verbringen). Sie entscheiden, wie Sie Perl einsetzen möchten - Sie müssen nicht Ihre Denkweise ändern, um sich der Sprache anzupassen. Manchmal denke ich immer noch, Perl ist ja so häßlich - aber ich finde es auch wirklich cool, und es macht Spaß, damit zu arbeiten. Das kann ich von C nicht sagen, das zwar konsistenter und eleganter ist, aber meiner Meinung nach viel mehr Schinderei mit sich bringt.
Trotz des Umfangs und der Komplexität von Perl, trotz seiner zahllosen Features ist es nicht schwer zu lernen. Und zwar genau wegen der vielen verschiedenen Möglichkeiten, ein und dasselbe Problem zu lösen: Es gibt immer auch eine einfache. Alles von Perl zu beherrschen, kann ziemlich einschüchternd sein (und nur eine Handvoll Leute können von sich behaupten, wirklich jede Nuance der Sprache zu kennen). Aber die einfachen Teile von Perl sind tatsächlich sehr einfach (insbesondere wenn Sie schon etwas Programmiererfahrung haben), und Sie können sehr schnell ausreichend Perl lernen, um es sinnvoll einzusetzen. Sie gewinnen damit vielleicht keine Schönheitswettbewerbe, aber es wird funktionieren. Wenn Sie dann Fortschritte machen und vertrauter mit der Sprache werden, können Sie mehr und mehr Features und Abkürzungen hinzufügen und dann ganz besonders schön oder elegant oder kryptisch kurz schreiben, ganz wie Sie möchten.
Entwicklung und Support von Perl finden jetzt seit etwa zehn Jahren auf freiwilliger Basis statt. Rund um die Welt widmen Programmierer ihre Zeit der Weiterentwicklung von Sprache und zusätzlichen Tools. Auf der einen Seite sieht das vielleicht sehr anarchistisch aus - da ist keine Firma verantwortlich zu machen, wenn etwas schiefgeht, keine Support-Nummer, die man anrufen kann, wenn man es nicht zum Laufen bringt. Auf der anderen Seite stellt die Perl-Gemeinschaft mittlerweile in so enormem Umfang hilfreiche Bibliotheken, bergeweise Dokumentation und FAQs (Frequently Asked Questions - häufig gestellte Fragen und die Antworten darauf) zur Verfügung, dass Sie die meisten Ihrer Fragen auch beantwortet und Hilfe bekommen, wenn Sie welche brauchen. Das werden Sie mit C nicht so haben, wo Sie normalerweise ein oder zwei Bücher kaufen oder sieben oder zwanzig und dann immer noch auf sich gestellt sind. Einer der größten Vorteile von Perl sind die Menschen, die damit arbeiten - und ihre außergewöhnliche Hilfsbereitschaft. Larry Wall hat sich übrigens immer gewünscht, dass die Perl-Gemeinde wie ein kleines Stück Himmel funktioniert. Bis jetzt ist ihm dieser Wunsch erfüllt worden, und auch Sie können nach der Lektüre dieses Buches dazu beitragen, dass das so bleibt. Bitte, lassen auch Sie sich von diesem Modell anstecken.
Um Perl zu verwenden - damit zu programmieren und Perl-Skripts auszuführen -, müssen Sie es auf Ihrem System installiert haben. Das ist zum Glück nicht schwierig. Wie ich bereits erwähnt habe, können Sie Perl frei herunterladen. Es kostet Sie lediglich etwas Verbindungszeit mit dem Internet.
Wenn Sie Perl noch nicht installiert haben oder sich nicht sicher sind, starten Sie als
erstes Ihren Webbrowser und gehen auf die Site http://www.perl.com
/
. Speichern Sie
diese Adresse zu Ihren Bookmarks oder Favoriten: Sie ist die zentrale Sammelstelle
für alles, was mit Perl zu tun hat. Sie finden dort nicht nur das Perl-Interpreter-Paket
selbst, sondern auch das Comprehensive Perl Archive Network (»umfassendes Perl-
Archivnetz«, abgekürzt CPAN), Perl-News, Dokumentationen, Konferenzen und
Wettbewerbe, Perl-Witze - so ziemlich alles, was Sie sich nur vorstellen können.
Auf der Seite http://www.perl.com/latest.html
finden Sie aktuelle Informationen zu
den neuesten Perl-Versionen für jede Plattform. Hier - und in den Anleitungen aus
dem Perl-Paket selbst - steht, wie Sie Perl herunterladen und auf Ihrem System
installieren.
Genauere Informationen bieten Ihnen die Anhänge C, D und E am Ende des Buchs. Dort ist im einzelnen erklärt, wie Sie Perl für Unix, Windows bzw. Macintosh installieren.
Bevor Sie weitermachen, sollten Sie Perl auf Ihrem System installiert und laufen haben.
Eine alte Tradition in der Programmierwelt ist das »Hallo Welt«-Programm. Wenn ein Programmierer eine neue Sprache lernt, schreibt er als erstes ein Programm, das einfach nur »Hallo Welt!« auf den Bildschirm ausgibt. Es liegt mir fern, die erste zu sein, die von dieser Tradition abweicht. So ist das erste Perl-Skript, mit dem wir uns in diesem Buch befassen, schon ein Klassiker. In diesem Abschnitt schreiben Sie das »Hallo Welt«-Skript und führen es aus, und ich werde Ihnen dann erklären, was dort passiert.
Sie brauchen einen Texteditor. Keine professionelle Textverarbeitung-Software, sondern einfach einen Editor: Unter Unix tun es emacs, vi oder pico, in Windows das eingebaute Notepad, die Shareware-Programme TextPad oder UltraEdit; auf dem Mac können Sie den simplen in MacPerl eingebauten Texteditor nehmen oder das Mac-eigene SimpleText oder zum Beispiel die Shareware-Programme BBEdit oder Alpha. Welchen Texteditor auch immer - starten Sie ihn, und tippen Sie die zwei Zeilen aus Listing 1.1 ein (na gut, drei, wenn Sie die leere in der Mitte mitzählen).
Schreiben Sie die Nummern und Doppelpunkte am Zeilenanfang nicht mit ab: das sind Zeilennummern. In allen Listings dieses Buchs stehen sie dort nur, damit ich Ihnen Zeile für Zeile erzählen kann, was im Skript geschieht.
Listing 1.1: Das Skript hallo.pl.
1: #!/usr/bin/perl -w
2:
3: print "Hallo Welt!\n";
Wenn Sie auf Unix arbeiten, achten Sie unbedingt auf die erste Zeile (umgangssprachlich »sh'bang« oder »shebang-Zeile« genannt: »sh'«für den Sharp, das Kreuz, und »bang« für das Ausrufezeichen). Diese Zeile sagt Unix, mit welchem Programm es das Skript ausführen soll. Der einzige Haken dabei ist, dass die Pfadangabe in dieser Zeile dem korrekten Pfad zum Perl-Interpreter entsprechen muss. Wenn Sie ihn in /usr/local/bin/perl oder woanders in Ihrem System installiert haben, fügen Sie Ihren Pfad anstelle des Pfadnamens in Zeile 1 im Listing 1.1 ein.
Wenn Sie mit Windows oder Mac arbeiten, ist diese Shebang-Zeile normalerweise überhaupt nicht nötig. Sie stört aber auch nicht: durch das # am Anfang wird sie von Perl als Kommentar betrachtet und deshalb auf anderen Plattformen als Unix schlichtweg ignoriert.
Es ist sogar eine gute Idee, sich die Shebang-Zeile anzugewöhnen, auch wenn es nicht unbedingt notwendig ist - insbesondere, wenn Ihre Perl-Programme eventuell einmal auf Unix laufen sollen
Wenn Sie vorhaben, Perl unter Windows für Web-CGI-Skripts einzusetzen, verlangen manche Webserver (wie z.B. Apache) eine Shebang-Zeile in Ihrem Perl-Skript (wenn auch eine im Windows-Stil, mit einem C: am Anfang). Noch ein Grund, sich das anzugewöhnen.
Speichern Sie jetzt Ihr Skript als, sagen wir, hallo.pl. Eigentlich können Sie die Datei nennen, wie Sie wollen, mit oder ohne die .pl-Erweiterung. Unter Windows sollten Sie das .pl aber lieber verwenden. Windows hat gern für jedes Programm eine eigene Dateinamensendung. Auf Unix-Rechnern sollten Sie Ihrem Skript natürlich nicht den Namen eines Unix-Befehls oder -Tools geben, nennen Sie es zum Beispiel nicht test - viele Unix-Varianten haben eine Routine mit diesem Namen, die dann anstatt Ihres Skripts ausgeführt würde.
Ihnen ist nicht nach Tippen? Alle Skripts aus diesem Buch finden Sie sowohl auf der Begleit-CD zu diesem Buch als auch auf der Webseite zu diesem Buch unter
http://www.typerl.com.
Sie können die dortigen Versionen verwenden, anstatt sie mühsam einzutippen. Allerdings lernt man meistens viel besser, wie Perl-Skripts arbeiten, wenn man sie selbst eingibt (und dann die Fehler korrigieren muss, die dabei unvermeidbar auftauchen). Sie sollten das zumindest mit diesen ersten paar Skripts ausprobieren.
Der nächste Schritt ist, Perl wirklich einzusetzen und Ihr Skript auszuführen.
Auf Unix müssen Sie zuerst Ihr Skript ausführbar machen und dann einfach den Namen des Skripts in die Kommandozeile eingeben, etwa so (das Fettgedruckte ist, was Sie wirklich eintippen, das Prozentzeichen ist der Prompt):
%chmod +x hallo.pl
%hallo.pl
Abhängig von Ihrer Pfadvariablen müssen Sie beim Aufruf des Skripts eventuell das Verzeichnis mit eingeben, in dem es sich befindet, zum Beispiel:
%./hallo.pl
Unter Windows starten Sie die MS-DOS-Eingabeaufforderung (oder einen anderen
DOS-Prompt, wenn Sie mehrere haben) und tippen perl -w
und den Namen des
Skripts ein:
C:\perl\>perl -w hallo.pl
Unter Windows 95 müssen Sie jedesmal den vollen Perl-Befehl eingeben.
Wenn Sie mit Windows NT arbeiten und Perl so eingerichtet haben, dass .pl-Dateien mit Perl verknüpft sind (wie in Anhang B beschrieben), dann brauchen Sie nur den Namen des Skripts eingeben:
C:\perl\>hallo.pl
In MacPerl wählen Sie zuerst Compiler Warnings im Skript-Menü und dann den Eintrag Run Skript aus dem Skript-Menü, um das Skript auszuführen.
Auf jeder Plattform sollten Sie jetzt den Satz »Hallo, Welt!« auf dem Bildschirm sehen.
Falls Sie die MPW-Version von MacPerl benutzen, können Sie Perl von der MPW-Kommandozeile starten. Dann gelten alle Optionen, die ich das ganze Buch hindurch beschreibe, als würden Sie die Unix-Version von Perl ausführen. In diesem Buch werde ich mich aber in erster Linie auf die Stand-alone-Version von MacPerl beziehen.
Was ist, wenn da kein »Hallo, Welt!« auf Ihrem Monitor steht? Vielleicht erhalten Sie statt dessen eine Perl-Fehlermeldung (zum Beispiel Can't find string terminator, »Kann das Ende der Zeichenkette nicht finden«). Prüfen Sie noch einmal Ihr Skript und stellen Sie sicher, dass Sie es korrekt eingetippt haben und dass alle Anführungszeichen, am Anfang und am Ende, richtig sind. Die erste Zeile beginnt mit einem Rautenzeichen #.
Wenn Sie die Meldung File not found (»Datei nicht gefunden«) oder Can't open perl script (»Kann Perl-Skript nicht öffnen«) erhalten, achten Sie darauf, dass Sie sich im gleichen Verzeichnis befinden wie Ihr Perl-Skript und dass Sie den Dateinamen exakt so eintippen wie beim Speichern der Datei.
Wenn Sie die Meldung Command not found (»Befehl nicht gefunden«) erhalten, überprüfen Sie, ob Sie Perl richtig installiert haben, und wenn Sie unter Unix arbeiten, ob der Pfad in Ihrer Shebang-Zeile dem korrekten Pfad zu Ihrem Perl-Interpreter entspricht.
Wenn Sie unter Unix die Meldung Permission denied (»Zugriff verweigert«) erhalten,
prüfen Sie, ob Sie daran gedacht haben, Ihr Skript ausführbar zu machen (mit dem
chmod +x
Befehl).
Wenn Sie immer noch Probleme haben sollten und Ihre Version von Perl von einem Systemadministrator installiert worden ist, bitten Sie ihn um Hilfe. Vielleicht wurde Perl anders als Sie erwarten installiert, oder Ihnen ist die Ausführung von Perl-Skripts nicht gestattet.
Jetzt haben Sie also ein zwei Zeilen-Perl-Skript, das den Satz »Hallo, Welt« auf den Bildschirm schreibt. Das scheint dann auch schon alles - sieht doch ganz einfach aus -, und doch stecken hier wichtige Perl-Grundlagen drin.
Zuallererst, das Prinzip bleibt auch bei längeren Perl-Skripts dasselbe: Ein Perl-Skript ist eine Folge von Anweisungen, die nacheinander, von oben nach unten, ausgeführt werden (manchmal gibt es Abzweigungen zu Subroutinen, mehrmals ausgeführten Code in Schleifen oder Code aus externen separaten Bibliotheken, aber das hier ist die Grundidee).
Die erste Zeile im »Hallo, Welt«-Skript ist ein Kommentar. Mit Kommentaren beschreiben Sie Teile des Perl-Codes, um zu erklären, was diese tun, oder zur Erinnerung, was Sie noch machen müssen - im allgemeinen um Ihr Skript aus welchem Grund auch immer zu kommentieren. Kommentare werden von Perl ignoriert; sie sind ausschließlich für Sie und jeden anderen, der Ihren Code liest, gedacht. Es gehört zum guten Programmierstil, ein Skript ausreichend zu kommentieren, auch wenn Sie weniger Kommentare als Code in Ihrem Skript stehen haben.
Die Shebang-Zeile, also die erste Zeile in Listing 1.1, ist eine spezielle Art von Kommentaren auf Unix-Systemen. Perl-Kommentare beginnen mit dem Rautenzeichen (#), und alles von diesem Zeichen bis zum Zeilenende wird ignoriert. Wenn Ihr Kommentar mehrere Zeilen lang sein soll, müssen Sie alle Zeilen mit # beginnen.
Perl kennt zwar auch Kommentare, die über mehrere Zeilen gehen, doch sind diese vornehmlich für die internen Perl-Dokumentationen (PODs) und nicht für einfache Kommentare gedacht. Bleiben Sie am besten bei den Rauten.
Die zweite Zeile im Code (Zeile 3 im Listing 1.1) ist ein Beispiel einer grundlegenden
Perl-Anweisung: Es ist ein Aufruf der eingebauten Funktion print
, die einfach den
Satz »Hallo, Welt« auf den Bildschirm ausgibt (nun, eigentlich auf das
Standardausgabegerät, und das ist in diesem Fall der Bildschirm. Morgen erfahren Sie
mehr über die Standardausgabe. Das \n
innerhalb der Anführungszeichen löst einen
Zeilenvorschub aus, genau wie in C; ohne dieses \n
würde Ihr Skript am Ende des
Satzes »Hallo, Welt« aufhören und nicht schön ordentlich am Anfang der nächsten
Zeile.
Beachten Sie das Semikolon am Ende der print
-Anweisung. Die meisten einfachen
Perl-Anweisungen enden mit einem Semikolon. Das ist wichtig - vergessen Sie es
nicht.
Mehr über all diese Konzepte - Anweisungen, Kommentare, Funktionen, Ausgabe und so weiter - später in diesem Kapitel und morgen, am Tag 2.
Auf den verschiedenen Plattformen, auf denen Sie Perl laufen lassen können, werden Perl-Warnungen auf unterschiedliche Weise aktiviert:
-w
in der Shebang-Zeile.
-w
direkt beim Programmaufruf von
Perl selbst.
Es ist eine ausgesprochen gute Idee, die Warnungen einzuschalten, wenn Sie Perl noch lernen (und oft auch, wenn Sie schon Erfahrung haben). Perl ist beim Verzeihen von eigenartigem oder oft auch falschem Code sehr großherzig - für Sie kann das stundenlange Fehlersuche bedeuten. Das Einschalten der Warnungen hilft, häufige Fehler und aus Sicht des Interpreters seltsame Stellen in Ihrem Code zu entdecken. Gewöhnen Sie es sich an, die Warnungen zu beachten, und Ihnen bleibt langfristig eine Menge Fehlersuche erspart.
Schauen wir uns ein weiteres Beispiel an. Das Skript aus Listing 1.2 bittet Sie um eine Eingabe und wiederholt diese Eingabe dann wie ein Echo auf dem Bildschirm, etwa so:
%echo.pl
Echo?Hi Laura
Hi Laura
%
Auf Windows NT führen Sie das Skript mit dem Perl-Interpreter aus, also:
Wenn Sie nur echo.pl eingeben, wird es nicht immer funktionieren (wenn die Ausgabe nur
pl
ist, kommt derecho
-Befehl von NT in die Quere).
Listing 1.2 zeigt den Code des Skripts echo.pl:
Listing 1.2: Das Skript echo.pl.
1: #!/usr/bin/perl -w
2: # gibt die Eingabe wieder aus
3:
4: print 'Echo? ';
5: $input = <STDIN>;
6: print $input;
Sie brauchen im Augenblick noch nicht jede Zeile dieses Skripts zu verstehen. Morgen, am Tag 2, werde ich alles bis in kleinste Detail erklären.
Tippen Sie das Skript erst einmal ganz ein, und starten Sie es. Wichtig ist im Moment, dass Sie eine generelle Vorstellung haben, wie es funktioniert. Im folgenden ein kleiner Schnelldurchlauf durch den Code:
Zeile 1 und 2 sind beides Kommentare. In der ersten steht der Shebang und in der zweiten eine kurze Erklärung, was das Skript leistet.
Zeile 4 schreibt Echo?
auf den Bildschirm. Beachten Sie, dass anders als bei »Hallo
Welt!\n« in dieser Zeichenfolge kein \n
steht. Das deshalb, weil hier ja um eine
Eingabe gebeten wird, der Cursor also, wie bei einem Prompt so üblich, am Ende der
Zeile stehen soll.
Zeile 5 liest eine an der Tastatur eingegebene Zeile und speichert sie in der Variablen
namens $input
. Sie brauchen sich weder um die einzelnen eingetippten Zeichen zu
kümmern noch darum, wann das Zeilenende auftaucht. Perl liest alles ein, bis der
Anwender die Eingabetaste drückt.
Zeile 6 schließlich gibt den Wert der Variablen $input
, sprich den eingegebenen
Text, auf dem Bildschirm aus.
Lassen Sie uns, nur aus Spaß, noch ein weiteres Beispielprogramm schreiben. Früher,
in den Tagen der textorientierten Computer-Terminals, geisterte eine Zeitlang ein
Scherzprogramm namens »the cookie monster« (»das Krümelmonster«) herum. Das
Krümelmonster-Programm verriegelte Ihr Terminal und sagte ohne Ende: »Gib mir
einen Keks« (oder: »Ich will Kekse« oder etwas in der Art), und ganz egal, was Sie
eintippten, es bestand immer nur darauf, dass es Kekse wolle. Der einzige Ausweg aus
dem Programm war, wirklich KEKSE
einzutippen - darauf kam man aber oft erst nach
stundenlangem Versuchen.
Listing 1.3 zeigt eine simple Perl-Version des Krümelmonster-Programms.
Listing 1.3: Das Skript kekse.pl
1: #!/usr/bin/perl -w
2: #
3: # Krümelmonster
4:
5: $kekse = "";
6:
7: while ( $kekse ne "KEKSE") {
8: print 'ich will KEKSE: ';
9: chomp($kekse = <STDIN>);
10: }
11:
12: print "Mmmm. KEKSE.\n";
Das ist jetzt schon ein bißchen komplizierter als »Hallo Welt« oder »Echo«. Und so könnte es aussehen, wenn Sie es ausführen:
%kekse.pl
ich will KEKSE:asdf
ich will KEKSE:exit
ich will KEKSE:quit
ich will KEKSE:stop
ich will KEKSE:es reicht
ich will KEKSE:@*&#@(*&@$
ich will KEKSE:kekse
ich will KEKSE:KEKSE
Mmmm. KEKSE.
%
Die letzte Zeile ist eine kleine Variation des traditionellen Cookie-Monster-Programms. Beachten Sie auch, dass man aus dieser Variante ziemlich einfach herauskommt: Ein simples
[Strg]
-[C]
wird es sofort abbrechen (oder ein Datei-Stop-Skript in MacPerl). Das Originalprogramm war allerdings nicht annähernd so nett. Aber hey, es ist erst Tag Eins, so heimtückisch können und brauchen wir noch nicht sein.
OK, und jetzt erkläre ich Ihnen Zeile für Zeile, was das Kekse-Skript macht:
$kekse
als einen leeren String »«.
while
-Schleife. Solange die Bedingung innerhalb der
Klammern erfüllt ist, wird der Code innerhalb der geschweiften Klammern
ausgeführt. Hier ist die Bedingung für die Schleife, dass die $kekse
-Variable nicht
das Wort KEKSE enthält, und zwar genau in dieser Schreibweise. Wurde Kekse
oder kekse
eingegeben, ist die Bedingung erfüllt, und die Schleife verlangt noch
einmal KEKSE von uns. Mit while
und anderen Schleifen befassen wir uns
ausführlich am Tag 4.
chomp
, über die Sie morgen
mehr lernen werden, schneidet einfach das Zeilenvorschubzeichen (Eingabetaste)
vom Ende Ihrer Eingabe ab und speichert sie in der Variablen $kekse
.
Noch einmal: Falls Sie nicht jede Zeile verstehen, verfallen Sie nicht in Panik. Morgen wird alles klarer.
Deutsche Sprache, schwääre Sprache! Zumindest in der Computerwelt hat das Deutsche seine Tücken: ä, ö, ü und ß.
Ändern wir zum Beispiel unser Krümelmonster-Skript dahin, dass es zwar nach Keksen schreit, man aber »süße Kekse« eingeben muss, damit das Programm wieder aufhört:
7: while ( $kekse ne "süße Kekse") {
8: print 'ich will ganz bestimmte Kekse: ';
9: chomp($kekse = <STDIN>);
10: }
Dann kann es Ihnen gut passieren, dass Sie zwar ganz richtig »süße Kekse« eintippen, das Programm aber immer weiter quakt. Was hier passiert, sehen Sie, wenn Sie explizit süße Kekse verlangen:
7: while ( $kekse ne "süße Kekse") {
8: print 'ich will süße Kekse: ';
9: chomp($kekse = <STDIN>);
10: }
Im DOS-Fenster zum Beispiel werden auf einmal s³¯e Kekse verlangt. Deswegen bringt die Eingabe von »süße Kekse« natürlich nichts. (Auch auf einem Unix-System kann es kryptisch werden: Unter X-Window kann es wunderbar funktionieren, auf der Konsole aber nicht mehr). Woran liegt das? Im ursprünglichen ASCII-Zeichensatz sind von 256 möglichen Zeichen-Codes nur die von 0 bis 127 festgelegt. Die übrigen Werte haben die verschiedenen Hersteller ganz unterschiedlich definiert, IBM hat sich etwas anderes ausgedacht als Apple, Microsoft wieder etwas anderes für DOS und noch etwas anderes für Windows und so weiter. Systemübergreifend »sicher« sind nur die folgenden (sichtbaren) Zeichen:
!"#$%&'()*+,-./
0123456789
:;<=>?@
ABCDEFGHIJKLMNOPQRSTUVWXYZ
[\]^_'
abcdefghijklmnopqrstuvwxyz
{|}~
Bei allen anderen Zeichen (also leider auch ä, ö, ü, ß, Ä, Ö und Ü) kann es also Schwierigkeiten geben.
Und was macht man da? Am sichersten ist, in Perl-Skripts gar keine anderen als die oben genannten Zeichen zu verwenden, dann kann, in welchem Zeichensatz auch immer, gar nichts schiefgehen. Also »suesse Kekse«.
Wenn Sie diese Schreibweise partout nicht ertragen, müssen Sie Ihre Skripts in dem Zeichensatz speichern, in dem Ihr Perl-Interpreter sie liest. Windows-Anwender können zum Beispiel mit einem Editor arbeiten, der Dateien auch in DOS-Code umwandeln kann. Oder sie schreiben ihre Skripts gleich ganz unter DOS (viel Spaß mit edit).
Vergessen Sie aber nicht, dass Umlaute und ß dann zwar auf Ihrem System funktionieren, aber nach wie vor in Variablennamen nicht erlaubt und auf einem anderen System wieder eine mögliche Fehlerquelle sind. Deswegen verwende ich in diesem Buch die unschönere, aber sichere Schreibweise.
Vertiefung? Das war nicht gerade flach bis jetzt! Sie werden diesen Abschnitt am Ende
jeder Lektion in diesem Buch finden. Hinter »Vertiefung« steht die Idee, dass es in Perl
Dinge gibt, die Ihnen beizubringen ich keine Zeit habe, oder noch andere Methoden,
die zum selben Ziel führen (Sie erinnern sich: »There's more than one way to do it«).
Der heutige Vertiefungsabschnitt gibt Ihnen Hinweise, wo Sie mehr lernen können -
nämlich in der Online-Dokumentation, die bei Ihrem Interpreter dabei ist, oder im
Internet unter http://www.perl.com
.
Ein Großteil der Online-Dokumentation liegt in Form von Manpages vor (man ist die Unix-Abkürzung für manual, man pages wortwörtlich also »Handbuchseiten«). Ich werde das ganze Buch hindurch auf diese Manpages verweisen, zum Beispiel die perlfunc- oder perlop-Manpages. Wenn Sie auf einem Unix-System arbeiten, können Sie diese Seiten normalerweise mit dem man-Befehl aufrufen, zum Beispiel:
%man perlfunc
Die Inhalte aller Manpages sind auch im perl-eigenen POD-Format erhältlich, eine
spezielle Form von Perl-Dokumentation, die auf jeder Plattform gelesen oder mit in
Perl eingebauten Konvertierungsprogrammen in Volltext oder HTML konvertiert
werden kann (POD steht für plain old documentation, was man vielleicht mit »klare
alte Dokumentation« übersetzen könnte, aber doch lieber einfach POD sagt ... Das
POD-Format dient insbesondere dazu, beim Schreiben von Modulen die dazugehörige
Dokumentation direkt in den Code des Moduls zu integrieren). Die POD-Seiten selbst
sind im pod-Verzeichnis Ihrer Perl-Distribution gespeichert, und Sie können sie unter
Unix oder Windows mit dem perldoc
-Befehl und dem Namen einer Perl-Manpage
lesen, etwa so:
%perldoc perlfunc
Wenn Sie etwas über eine bestimmte Perl-Funktion wie print
oder chomp
wissen
möchten, verwenden Sie perldoc
mit der Option -f
folgendermaßen:
%perldoc -f print
In Windows-Distributionen finden Sie die Manpages immer häufiger nur als HTML- Dateien im Verzeichnis docs\Perl. Die Dateien haben die gleichen Namen wie die Manpages (zum Beispiel perlfunc.html), Sie können sie also direkt mit Ihrem Webbrowser öffnen. Oder Sie öffnen zuerst die Datei perl.html (und setzen einen Bookmark), dort stehen gleich am Anfang die Links zu allen anderen Manpages, die Sie dann nur noch anzuklicken brauchen.
Auf dem Mac finden Sie alle Dokumentation zu Perl im Hilfemenü von MacPerl. Allerdings müssen Sie die Dateinamen erraten (die perlfunc-Manpage ist zum Beispiel unter »Builtin functions«, »Eingebaute Funktionen«, aufgelistet). POD-Dateien liest MacPerl mit der Anwendung Shuck.
Letzlich sind alle Perl-Manpages auch im Web unter http://www.perl.com/CPAN-
local/doc/manual/html/pod/
erhältlich. Ich finde es oft einfacher, die Perl-Manpages
über das Web zu suchen und zu lesen als mit den perldoc oder man-Befehlen (vielen
Windows-Benutzern geht es wohl genauso).
Wenn Sie lieber richtiges Papier in den Händen haben möchten oder Ihre Englischkenntnisse für die Manpages nicht ausreichen, empfiehlt sich im allgemeinen das Buch Programmieren mit Perl (Wall, Christiansen and Schwartz, deutsche Übersetzung Klicman, O'Reilly, 1997), auch bekannt als das Kamelbuch (wegen dem Kamel auf seinem Cover). Das Kamelbuch ist die definitive Referenzbibel für Perl und beschreibt es in fast beängstigenden Details - es ist ein ganz schöner Wälzer. Ziel von Perl in 21 Tagen ist, Ihnen alle Grundlagen und die allgemeine Praxis beizubringen. Wollen Sie aber einige der mehr esoterischen Features der Sprache erforschen, ist Programmieren mit Perl wahrscheinlich ein wichtiges Buch für Sie (meines ist zerfleddert und vollgekritzelt).
Heute war eher ein »Hallo, wie geht es Ihnen«-Tag als ein harter Arbeitstag. In dieser Lektion haben Sie einiges über den Hintergrund und die Geschichte von Perl gelernt, warum es Spaß macht und warum es für Sie nützlich ist, es zu lernen. Nach all den Hintergrundinformationen in der ersten Hälfte der Lektion haben Sie einen ersten Blick darauf werfen können, wie ein Perl-Skript überhaupt aussieht und wie Sie es auf Ihrem System zum Laufen bekommen. Außerdem haben Sie ein paar Grundlagen über Kommentare, Perl-Anweisungen und den Ablauf von Perl-Programmen gelernt. Spätestens jetzt sollten Sie Perl auf Ihrem System installiert und startklar haben - von nun an ist alles Code.
Frage:
Wenn Perl so einfach zu lernen ist, warum brauche ich dann 21 Tage dafür?
Antwort:
Brauchen Sie vielleicht gar nicht. Wenn Sie 21 Tage Zeit und nichts anderes
zu tun haben, können Sie eine ganze Menge mehr Perl lernen - mehr, als so
manche Leute wissen, die sich selbst Perl-Programmierer nennen. Aber es ist
auch gut möglich, dass Sie schon nach der ersten oder zweiten Woche genug
Perl aufgeschnappt haben, um erst einmal klarzukommen, und Sie den
schwierigeren Stoff ignorieren - bis Ihnen irgendwann abenteuerlicher
zumute ist oder Sie mehr mit der Sprache machen müssen. Wenn Sie schon
viel Programmiererfahrung mit einer anderen Sprache haben, kommen Sie
durch die ersten Kapitel wahrscheinlich eine ganze Ecke schneller als nur ein
Kapitel pro Tag. Eine Programmiererweisheit: Den Job so schnell wie möglich
mit dem geringsten Arbeitsaufwand erledigen. Wenn Ihnen das schneller
gelingt - wunderbar, das ist ganz im Sinne von Perl.
Frage:
Ich habe keine Programmiererfahrung, obwohl ich viel mit HTML gearbeitet habe
und mich etwas mit JavaScript auskenne. Kann ich Perl lernen?
Antwort:
Ich wüßte nicht, was dagegen spräche. Obwohl ich dieses Buch für Leute
geschrieben habe, die schon ein paar Programmierkenntnisse haben - wenn
Sie sich in Ruhe durch das Buch, die Beispiele und Übungen arbeiten und
selbst noch etwas experimentieren, sollte es Ihnen keine großen
Schwierigkeiten bereiten. Perls Flexibilität macht es auch zu einer großartigen
Sprache für Anfänger. Und wenn Sie sich mit anderen Webtechnologien
schon auskennen, paßt Perl wunderbar dazu.
Frage:
Heißt der Quellcode, den ich schreibe, Perl-Programm oder Perl-Skript?
Antwort:
Das kommt darauf an, wie pedantisch Sie mit der Semantik sind. Man kann
argumentieren, dass Programme kompiliert und Skripts interpretiert werden.
Man habe ja schließlich C- und Java-Programme (und C- und Java-Compiler),
aber JavaScript- oder AppleScript-Skripts. Und da Perl im wesentlichen eine
interpretierte Sprache ist, ist der Code, den Sie schreiben, ein Perl-Skript und
kein Perl-Programm. Man kann aber dagegenhalten, dass das, was Sie tun,
Programmieren ist, und dieser Vorgang die Entwicklung eines Programms
beinhaltet. Eine dritte Position wäre die Ansicht, dass es eigentlich überhaupt
keine Rolle spielt. Diese Auffassung ist mir äußerst sympathisch, doch mein
Verleger verlangt Konsistenz von mir; also bleibe ich beim ersten Argument
und nenne sie Skripts.
Frage:
Ich habe den Hallo-Welt-Einzeiler eingetippt, aber er läuft einfach nicht!
Antwort:
Sind Sie sicher, dass Sie Perl auf Ihrem System installiert haben? Perl zu
installieren und zum Laufen zu bringen, ist die Hauptaufgabe von heute.
Wenn Sie an das Ende vom Buch blättern, finden Sie in den Anhängen
Installationsanweisungen für Ihr System (vorausgesetzt, Sie arbeiten mit
Unix, Windows oder MacOS). Außerdem können die Dokumente Ihrer Perl-
Distribution eine große Hilfe sein, alles an den Start zu bringen.
Frage:
Wenn ich in Windows auf meine Datei hallo.pl doppelklicke, öffnet sich ganz kurz
ein Fenster und verschwindet dann wieder. Wie kann ich die Ausgabe meines
Programms sehen?
Antwort:
Führen Sie die Skripts aus einer Kommandozeile oder einem DOS-Prompt
aus, nicht aus dem Explorer-Fenster. Starten Sie zuerst die MS-DOS-
Eingabeaufforderung, wechseln Sie in das entsprechende Verzeichnis, und
tippen Sie dann perl -w
und den Namen Ihres Skripts ein. Hier ein einfaches
Beispiel:
C:\>cd ..\scripte
C:\scripte>perl -w hallo.pl
Sollten Sie noch Schwierigkeiten haben, schauen Sie in die Windows Perl FAQs unter http://www.activestate.com/support/faqs/Win32.
Frage:
Ich arbeite unter Windows. Sie erwähnen, dass die #!- (Shebang-)Zeile am Anfang
des Skripts eine reine Unix-Angelegenheit ist. Warum soll ich sie mit
hineinnehmen, wenn ich nicht auf Unix arbeite und es auch nicht vorhabe?
Antwort:
Brauchen Sie nicht, wenn nicht zu erwarten ist, dass Ihre Perl-Skripts jemals
auf Unix laufen (aber bedenken Sie, auch manche Webserver unter Windows
verlangen danach). Weil die Shebang-Zeile mit einer Raute anfängt, ist sie
eigentlich ein Kommentar, deswegen wird sie unter Windows ignoriert, und
Sie können sie auch weglassen. Aber vielleicht sollen Ihre Skripts ja
irgendwann doch einmal unter Unix eingesetzt werden - auf jeden Fall ist die
Shebang-Zeile eine gute Angewohnheit.
Frage:
Das Skript hallo.pl- läuft wunderbar, aber kekse.pl gar nicht. Perl beschwert sich
über die »undefined subroutine chomp«.
Antwort:
Klingt, als hätten Sie noch Perl 4. Dort gibt es die Funktion chomp
noch nicht,
deswegen wird sie für eine »undefinierte Subroutine« gehalten. Geben Sie
perl
mit der Option -v
ein, dann sagt Perl Ihnen »this is Perl« und die genaue
Version. Es sollte Perl 5 sein (dieses Buch behandelt Perl 5, und Sie werden
Schwierigkeiten bekommen, wenn Sie versuchen, Perl-5-Features mit Perl 4
zu nutzen). Überprüfen Sie noch einmal Ihre Installation, und stellen Sie
sicher, dass Sie für alle Ihre Skripts Perl 5 verwenden.
Frage:
Ich arbeite mit dem Editor emacs unter Unix. Gibt es einen speziellen Modus für
Perl?
Antwort:
Selbstverständlich! Perl ist eine Unix-Sprache und eine populäre dazu.
Sowohl in der Standard-GNU-emacs-Distribution als auch im Perl-Interpreter-
Paket ist ein perl-mode dabei. Je nachdem, welche emacs-Version Sie
benutzen und wie diese eingerichtet ist, kann eine .pl-Erweiterung oder eine
Shebang-Zeile automatisch den perl-mode für Sie starten. Ansonsten schalten
Sie ihn mit der Eingabe von M-X perl-mode
ein.
Frage:
In Ihren Beispielen stehen in manchen print-Anweisungen doppelte
Anführungszeichen und in anderen nur einfache. Warum?
Antwort:
Gut aufgepaßt! Dafür gibt es einen besonderen Grund, der damit zu tun hat,
ob zwischen den Anführungszeichen Anweisungen wie \n
oder
Variablennamen stehen. Sie werden den Unterschied morgen lernen.
Der Workshop-Abschnitt, ein Bestandteil jedes Kapitels, ist in zwei Teile gegliedert:
Die Lösungen zu Quiz und Übungsaufgaben stehen weiter unten.
http://www.perl.com
?
!/usr/bin/perl -w
print "Hallo, Welt!\n";
#!/usr/bin/perl -w
print 'Geben Sie Ihren Namen ein: '
# die Input-Daten speichern $input = <STDIN>;
print $input;
Geben Sie Ihren Namen ein:Laura
Hallo, Laura!
Geben Sie Ihren Namen ein:Anastasia
Hallo, Anastasia!
Geben Sie Ihren Namen ein:Turok der Allmächtige
Hallo, Turok der Allmächtige!
Geben Sie Ihren Namen ein:bye bye
hallo, bye bye!
%
Hier die Antworten auf die Workshop-Fragen aus dem vorigen Abschnitt.
http://www.perl.com
ist die zentrale Sammelstelle für alles, was mit
Perl zu tun hat: Dort schaut man nach der aktuellen Perl-Version, dem
Comprehensive Perl Archive Network (Tools, Module und Utilities rund um Perl),
Dokumentationen, FAQs und weiteren Informationen - so ziemlich allem, was Sie
sich im Zusammenhang mit Perl nur wünschen können.
#!/usr/bin/perl -w
print "Hallo, Welt!\n";
print " Hallo, Welt!\n";
#!/usr/bin/perl -w
print "Hallo, Welt! Hallo, Welt!\n";
print
-Anweisung fehlt das Semikolon am Zeilenende.
#!/usr/bin/perl -w
#
$name = "";
while ($name ne 'bye bye') {
print 'Geben Sie Ihren Namen ein: ';
chomp($name = <STDIN>);
print "Hallo, ";
print $name;
print "!\n";
}